package com.eastdigit.system.service;

import com.eastdigit.system.model.DataScope;
import java.util.List;

public interface IDataScopeService {

    /**
     * 全部重新加载
     */
    void reload();

    /**
     * 查询某个用户的某个菜单的数据范围
     * 
     * @param userId
     * @param menuId
     * @return
     */
    List<DataScope> queryMenuDataScopeOfUser(String userId, String menuId);

    /**
     * 查询某个用户的某个菜单的数据范围
     * 
     * @param userId
     * @param menuIds
     * @return
     */
    List<DataScope> queryMenuDataScopeOfUser(String userId, List<String> menuIds);

    /**
     * 修改角色
     * 
     * @param roleId
     * @param roleScope
     */
    void updateByRoleUpdate(String roleId, String roleScope);

    /**
     * 删除角色
     * 
     * @param roleId
     */
    void updateByRoleDelete(String roleId);

    /**
     * 
     * 角色增加菜单
     * 
     * @param roleId
     * @param menuIds
     */
    void updateByRoleAddMenus(String roleId, String menuIds);

    /**
     * 角色删除菜单
     * 
     * @param roleId
     * @param menuIds
     */
    void updateByRoleDeleteMenus(String roleId, String menuIds);

    /**
     * 
     * 用户增加角色
     * 
     * @param userId
     * @param roleId
     */
    void updateByUserAddRole(String userId, String roleId);

    /**
     * 
     * 用户删除角色
     * 
     * @param userId
     * @param roleId
     */
    void updateByUserDeleteRole(String userId, String roleId);

    /**
     * 
     * 用户删除
     * 
     * @param userId
     */
    void updateByUserDelete(String userId);

    /**
     * 
     * 菜单删除
     * 
     * @param menuId
     */
    void updateByMenuDelete(String menuId);

    /**
     * 增加部门
     * 
     * @param deptId
     * @param parentDeptId
     */
    void updateByDeptAdd(String deptId, String parentDeptId);

    /**
     * 删除部门
     * 
     * @param deptId
     */
    void updateByDeptDelete(String deptId);

    /**
     * 部门修改
     * 
     * @param deptId
     * @param parentDeptId
     */
    void updateByDeptUpdate(String deptId, String parentDeptId);

}
